#pragma once

class CDependencyObject;
class CPointer;

class CPointerState
{
public: 
	CPointerState(XINT32 pointerId, enum XPointerInputType pointerInputType);
	~CPointerState();
	HRESULT SetEnterDO(CDependencyObject * pdo);
	CDependencyObject * GetEnterDO();
	HRESULT SetCaptureDO(CDependencyObject * pdo);
	CDependencyObject * GetCaptureDO();
	HRESULT SetCapturePointer(CPointer * pPointer);
	CPointer * GetCapturePointer();
	void SetLastPosition(struct XPOINTF pointLast);
	struct XPOINTF GetLastPosition();
	void SetPointerDown(XUINT32 bPointerDown);
	XUINT32 IsPointerDown();
	XINT32 GetPointerId();
	enum XPointerInputType GetPointerInputType();
	void SetPointerCanceled(XUINT32 bPointerCanceled);
	XUINT32 IsPointerCanceled();

	XINT32 m_pointerId;
	XUINT32 m_bPointerDown;
	struct XPOINTF m_ptLastPosition;
	CDependencyObject * m_pPointerEnterDO;
	CDependencyObject * m_pPointerCaptureDO;
	CPointer * m_pPointer;
	enum XPointerInputType m_pointerInputType;
	XUINT32 m_bPointerCanceled;

};